# -*- coding:utf-8 -*-
#! python3

from facecat import *

#更新悬浮状态
#views:视图集合
def updateView(views):
	updateViewDefault(views)

#绘制视图
#view:视图
#paint:绘图对象
#clipRect:区域
def onPaint(view, paint, clipRect):
	onPaintDefault(view, paint, clipRect)

#绘制视图边线
#view:视图
#paint:绘图对象
#clipRect:区域
def onPaintBorder(view, paint, clipRect):
	onPaintBorderDefault(view, paint, clipRect)

#视图的鼠标移动方法
#view 视图
#mp 坐标
#buttons 按钮 0未按下 1左键 2右键
#clicks 点击次数
#delta 滚轮值
def onMouseMove(view, mp, buttons, clicks, delta):
	onMouseMoveDefault(view, mp, buttons, clicks, delta)
		
#视图的鼠标按下方法
#view 视图
#mp 坐标
#buttons 按钮 0未按下 1左键 2右键
#clicks 点击次数
#delta 滚轮值
def onMouseDown(view, mp, buttons, clicks, delta):
	onMouseDownDefault(view, mp, buttons, clicks, delta)

#视图的鼠标抬起方法
#view 视图
#mp 坐标
#buttons 按钮 0未按下 1左键 2右键
#clicks 点击次数
#delta 滚轮值
def onMouseUp(view, mp, buttons, clicks, delta):
	onMouseUpDefault(view, mp, buttons, clicks, delta)

#视图的鼠标点击方法
#view 视图
#firstTouch:是否第一次触摸 
#firstPoint:第一次触摸的坐标 
#secondTouch:是否第二次触摸 
#secondPoint:第二次触摸的坐标
#clicks 点击次数
def onClick(view, firstTouch, firstPoint, secondTouch, secondPoint, clicks):
	onClickDefault(view, firstTouch, firstPoint, secondTouch, secondPoint, clicks)

#视图的鼠标滚动方法
#view 视图
#mp 坐标
#buttons 按钮 0未按下 1左键 2右键
#clicks 点击次数
#delta 滚轮值
def onMouseWheel(view, mp, buttons, clicks, delta):
	onMouseWheelDefault(view, mp, buttons, clicks, delta)

appPaint = FCPaint() #创建绘图对象
appPaint.defaultUIStyle = "dark"
#注册事件
appPaint.onPaint = onPaint 
appPaint.onPaintBorder = onPaintBorder
appPaint.onMouseDown = onMouseDown 
appPaint.onMouseMove = onMouseMove 
appPaint.onMouseUp = onMouseUp
appPaint.onMouseWheel = onMouseWheel
appPaint.onClick = onClick
appPaint.onUpdateView = updateView

#消息循环
def WndProc(hwnd,msg,wParam,lParam):
	return WndProcDefault(appPaint,hwnd,msg,wParam,lParam)

#创建窗体
createMainWindow(appPaint, "facecat-py", WndProc)

#创建布局层
layout = FCLayoutDiv()
#添加到框架
addView(layout, appPaint)
#显示横向滚动条
layout.showHScrollBar = True
#显示纵向滚动条
layout.showVScrollBar = True
#根据主题配色
if layout.paint.defaultUIStyle == "dark":
	layout.backColor = "rgb(0,0,0)"
	layout.borderColor = "rgb(100,100,100)"
	layout.textColor = "rgb(255,255,255)"
	layout.scrollBarColor = "rgb(100,100,100)"
elif layout.paint.defaultUIStyle == "light":
	layout.backColor = "rgb(255,255,255)"
	layout.borderColor = "rgb(150,150,150)"
	layout.textColor = "rgb(0,0,0)"
	layout.scrollBarColor = "rgb(200,200,200)"
#填充布局
layout.dock = "fill"       
#设置边距
layout.padding = FCPadding(10, 10, 10, 10)
#自动换行
layout.autoWrap = True
#创建子视图
for i in range(0,100):
	button = FCView()
	#添加到父视图
	addViewToParent(button, layout)
	button.text = str(i + 1)
	#根据主题配色
	if layout.paint.defaultUIStyle == "dark":
		button.backColor = "rgb(0,0,0)"
		button.borderColor = "rgb(100,100,100)"
		button.textColor = "rgb(255,255,255)"
	elif layout.paint.defaultUIStyle == "light":
		button.backColor = "rgb(255,255,255)"
		button.borderColor = "rgb(150,150,150)"
		button.textColor = "rgb(0,0,0)"
	#设置大小
	button.size = FCSize(100, 100)
	#设置位置
	button.location = FCPoint(0, 0)
	#设置外边距
	button.margin = FCPadding(10, 10, 10, 10)
#重置布局
resetLayoutDiv(layout);

#获取窗体大小
rect = win32gui.GetClientRect(appPaint.hWnd)
#更新布局
appPaint.size = FCSize(rect[2] - rect[0], rect[3] - rect[1])
updateView(appPaint.views)
showWindow(appPaint)